package tp1.models;

import java.util.Date;

/**
 *
 * @author tulio
 */
public class Chamada {


    private int id;

    private Linha destino, origem;
    
    private Date inicio, fim;

    public Chamada() {
        
    }

    public Linha getDestino() {
        return destino;
    }

    public void setDestino(Linha destino) {
        this.destino = destino;
    }

    public Date getFim() {
        return fim;
    }

    public void setFim(Date fim) throws Exception{
        if ((this.inicio.getTime() > fim.getTime())){
            throw new Exception("A data de fim da chamada deve ser maior que a data de início.");
        }

        if(this.origem.getDataDeCancelamento() != null){
            if(fim.getTime() > this.origem.getDataDeCancelamento().getTime()){
                throw new Exception("Apenas números ativos podem efetuar chamadas.");
            }
        }

        this.fim = fim;
    }

    public int getId() {
        return id;
    }
    
    public void setId(int id) {
        this.id = id;
    }

    public Date getInicio() {
        return inicio;
    }

    public void setInicio(Date inicio) {
        this.inicio = inicio;
    }

    public Linha getOrigem() {
        return origem;
    }

    public void setOrigem(Linha origem) throws Exception {
        if (origem.getDataDeAtivacao() == null)
           throw new Exception("Número de origem não pertence a operadora ");
        this.origem = origem;
    }

    @Override
    public String toString() {
        return "Chamada{\n\t" + "id=" + id + "\n\tdestino=" + destino.toString() + "\n\torigem=" + origem.toString() + "\n\tinicio=" + inicio.toString() + "\n\tfim=" + fim.toString() + "\n}";
    }

}
